<!DOCTYPE html>
<html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
	<meta name="renderer" content="webkit">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<meta http-equiv="Access-Control-Allow-Origin" content="*">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="format-detection" content="telephone=no">
	<link rel="icon" href="/favicon.ico">
	<link rel="stylesheet" href="/resources/layui/css/layui.css" media="all" />
	<link rel="stylesheet" href="/resources/css/index.css" media="all" />
	<link rel="stylesheet" href="/resources/layui_ext/dtree/font/dtreefont.css" media="all" />
	<link rel="stylesheet" href="/resources/layui_ext/dtree/dtree.css" media="all" />
</head>
<body>
	<fieldset class="layui-elem-field">
  	<legend>条件选择</legend>
 	 <div class="layui-field-box">
   		<form action="" class="layui-form layui-form-pane">
   			<div class="layui-form-item" align="center">
   			<div class="layui-inline">
   				<label class="layui-form-label">角色名称</label>
    			<div class="layui-input-inline">
      				<input type="text" name="name"  placeholder="请输入角色名称" autocomplete="off" class="layui-input">
    			</div>
   			</div>
   			
   			<div class="layui-inline">
   				<label class="layui-form-label">角色备注</label>
    			<div class="layui-input-inline">
      				<input type="text" name="remark" placeholder="请输入角色备注" autocomplete="off" class="layui-input">
    			</div>
   			</div>
   			
   			<div class="layui-inline">
    			<div class="layui-input-inline">
      				 <button class="layui-btn" lay-submit="" lay-filter="search"  id="search">搜索</button>
      				 <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    			</div>
   			</div>	
   			</div>
   			
   		</form>
 	 </div>
</fieldset>
	<table id="role" lay-filter="role"></table>

<div>
	<div id="toolbar" style="display: none;">
		<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="add" shiro:hasPermission="role:create">添加角色</button>
	</div>
	<div id="rowBtn" style="display: none;">
		<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="update" shiro:hasPermission="role:update">更新</button>
		<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete" shiro:hasPermission="role:delete">删除</button>
		<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="show" shiro:hasPermission="role:selectPermission">分配权限</button>
	</div>
</div>

<div style="display: none; padding: 20px" id="roleadd" >
	<form action="" method="post" id="form" class = "layui-form-pane layui-form" lay-filter="form">
		<div class="layui-form-item">
    		<label class="layui-form-label">角色名称</label>
   			<div class="layui-input-block">
   				 <input type="hidden" name="id" id = "id">
     			 <input type="text" name="name" id="title" lay-verify="required" autocomplete="off" placeholder="请输入角色姓名" class="layui-input">
   			</div>
  		</div>
  		
  		<div class="layui-form-item">
		    <label class="layui-form-label">角色备注</label>
		    <div class="layui-input-block">
		    	 <textarea class="layui-textarea" name="remark" id="remark"></textarea>
		    </div>
 	   </div>
 		
 		
 		 <div class="layui-form-item">
	      <label class="layui-form-label">是否可用</label>
	      <div class="layui-input-block">
	        <input type="radio" name="available" value="1" title="可用" checked="">
	        <input type="radio" name="available" value="0" title="不可用" >
	      </div>
	    </div>
 		
 		<div class="layui-form-item" >
    		<div class="layui-input-block" style="text-align: center;">
      			<button type="submit" class="layui-btn" lay-submit="" lay-filter="dosubmit">提交</button>
     			<button type="reset" class="layui-btn layui-btn-primary">重置</button>
    		</div>
  		</div> 
	</form>
</div>

<div style="display: none;" id="showDiv" >
	 <ul id="leftDtree" class="leftDtree" data-id="0"></ul>
</div>

<script type="text/javascript" src="/resources/layui/layui.js"></script>
<script type="text/javascript">
layui.extend({
    dtree: '/resources/layui_ext/dtree/dtree'   // {/}的意思即代表采用自有路径，即不跟随 base 路径
  }).use(["jquery","layer","form","table","dtree"],function(){
		var $ = layui.jquery;
		var layer = layui.layer;	
		var form = layui.form;	
		var table = layui.table;	
		var dtree = layui.dtree;
		 
		//table 初始化开始
		var t = table.render({
			elem:"#role",
			page:true,
			url:"/sys/role/list",
			height: 'full-220',
			toolbar:"#toolbar",
			parseData:function(rs){
				if(rs.code != 200){
					layer.msg(rs.msg);
					return false;
				}
				 return {
				      "code": rs.code, //解析接口状态
				      "msg": rs.msg, //解析提示文本
				      "count": rs.data.count, //解析数据长度
				      "data": rs.data.data //解析数据列表
				    };
			},
			response:{
				statusCode: 200
			},
			cols:[ [
				 {type:'checkbox',fixed:"left"},
				 {field: 'id', title: 'ID', sort: true, fixed: 'left',align:"center"},
			     {field: 'name', title: '角色名称',align:"center"},
			     {field: 'remark', title: '角色备注',sort: true,align:"center"},
			     {field: 'available', title: '是否有效',align:"center",templet:function(d){
			    	 return d.available==1?"<font color=blue>有效</font>":"<font color=red>无效</font>"
			     }},
			     {field: 'createtime', title: '发布时间',align:"center"},
			     { title: '操作',toolbar:"#rowBtn",align:"center"}
			] ]
		});
		//table 初始化结束
		form.on("submit(search)",function(d){
			t.reload({
				where:d.field,
				page:{
					curr:1
				}
			});	
			return false;
		});
		//头监听事件开始
		table.on('toolbar(role)', function(obj){
			  var checkStatus = table.checkStatus(obj.config.id);
			  switch(obj.event){
			    case 'add':
			      add()
			    break;
			  };
		});
		//头监听事件结束
		
		//新增开始
		var layerIndex;
		var url;
		 function add(){
			layerIndex=layer.open({
				 	   type: 1, 
				 	   content: $('#roleadd'),
				       title:"新增角色",
				       area:['700px','400px'],
				       success: function(){
					        $("#form")[0].reset();
					        url="/sys/role/add";
					      }
			      });
		     };
		//新增结束
		
		//监听弹出层form表单提交 开始
		form.on("submit(dosubmit)",function(d){
			//用于同步编辑器内容到textarea（一般用于异步提交） 
			
			//对form表单进行序列化
			
			$.post(url,d.field,function(rs){
				if(rs.code == 200){
					t.reload();
				}
				layer.msg(rs.msg);
				layer.close(layerIndex);
			});
			return false;
		});
		//监听弹出层form表单提交 结束
		
		//行监听事件开始
		table.on('tool(role)', function(obj){ 
			var data = obj.data;
			switch(obj.event){
				case 'update':
					update(data);
				break;
				case 'delete':
					deleteOne(data);
				break;
				case 'show':
					show(data);
				break;
			}
		});
		//行监听事件结束
		
		//跟新数据 开始
		function update(data){
			layerIndex = layer.open({
				   type: 1, 
			 	   content: $('#roleadd'),
			 	   title:"修改角色",
			       area:['900px','600px'],
			       success: function(){
				        $("#form")[0].reset();
				        console.log(data);
				    	/* $("#name").val(data.name);
				       	$("#id").val(data.id); */
				      	form.val("form", data);
				        url="/sys/role/update";
				  }
			});
		}
		
		//跟新数据 结束
		
		//删除单个数据 开始
		function deleteOne(data){
			var id = data.id;
			layer.confirm('是否删除该数据?', {icon: 3, title:'提示'}, function(index){
				$.post("/sys/role/deleteOne",{"id":id},function(rs){
					if(rs.code == 200){
						t.reload();
					}	
					layer.msg(rs.msg);
				});
				layer.close(index);
			});
		};
		//删除单个数据 结束
		
		//查看公告内容 开始
		function show(data){
			layerIndex = layer.open({
				   type: 1, 
			 	   content: $('#showDiv'),
			 	   title:"分配权限",
			       area:['700px','600px'],
			       btn: ['<span class=layui-icon>&#xe605;确认</span>', '<span class=layui-icon>&#x1006;取消</span>'],
			       btnAlign: 'c',
			 	   yes: function(index, layero){
			 		   //获取复选框选中弄的值
			 		var params = dtree.getCheckbarNodesParam("leftDtree");
			 		console.log(params); 
			 		//拼接数据   角色id 加上 权限的id;  在后台进行插入
			 		var dataParams = "rid="+data.id; 
			   		 $.each(params,function(index,value){
			   			dataParams+="&pid="+value.nodeId;
			   		 	});
			   		 //保存权限
			   		$.post("/sys/role/aod",dataParams,function(rs){
			   			if(rs.code == 200){
			   				layer.msg(rs.msg)
			   				layer.close(layerIndex);
			   			}else{
			   				layer.msg(rs.msg)
			   			}
			   		})
			 		},
			  	   btn2: function(index, layero){
			   		 //按钮【按钮二】的回调
			    
			  		},
			       success: function(){
			    	   //初始化树
			    	  dtree.render({
			    		   elem: "#leftDtree",
			    		   dataStyle: "layuiStyle",  //使用layui风格的数据格式
			    		   dataFormat: "list",  //配置data的风格为list
			    		   response:{message:"msg",statusCode:200},//修改response中返回数据的定义
			    		   //开启复选框
			    		   checkbar: true,  
			    		   checkbarType: "all",
			    		   url: "/sys/role/dtree?rid="+data.id // 使用url加载（可与data加载同时存在）
			    		});
				  }
			});
			
		}
		//查看公告内容 结束
	})
</script>
</body>
</html>